View Javadoc
1 /*** 2 * QuiltCollectorImpl 3 * 4 * This is a convienience class to assist in 5 * implementing the QuiltCollector interface. 6 * 7 * You will need to provide an implementation 8 * of "reset()" however. 9 */ 10 11 package junit.quilt.framework; 12 13 import java.util.Map; 14 import java.util.HashMap; 15 import java.util.Set; 16 import java.util.HashSet; 17 import java.util.Iterator; 18 19 public abstract class QuiltCollectorImpl 20 extends Object 21 implements QuiltCollector 22 { 23 // NOTE: 24 // For Ball94, Segments aren't stored here. 25 // it overrides "getAll(cover)" to create 26 // the results on the fly. 27 28 private Map segments = new HashMap(); 29 // CAPABILITY X SET( SEGMENTS ) 30 31 protected QuiltCollectorImpl( String capabilities[] ) { 32 for (int i = 0; i < capabilities.length; i++) { 33 segments.put( capabilities[i], 34 new HashSet() ); 35 } 36 } 37 38 protected void addSegment( String coverage, 39 CoverageSegment segment ) 40 { 41 Set segs = (Set) segments.get( coverage ); 42 segs.add( segment ); 43 } 44 45 protected void removeSegment( String coverage, 46 CoverageSegment segment ) 47 { 48 Set segs = (Set) segments.get( coverage ); 49 segs.remove( segment ); 50 } 51 52 protected Set findCovered( Set segs ) { 53 Set RC = new HashSet(); 54 55 Iterator i = segs.iterator(); 56 while (i.hasNext()) { 57 CoverageSegment seg = (CoverageSegment) i.next(); 58 if (seg.getNumVisits() > 0) RC.add( seg ); 59 } 60 61 return RC; 62 } 63 64 public Set getCovered( String coverage ) { 65 return findCovered( getAll( coverage ) ); 66 } 67 68 protected Set findUncovered( Set segs ) { 69 Set RC = new HashSet(); 70 71 Iterator i = segs.iterator(); 72 while (i.hasNext()) { 73 CoverageSegment seg = (CoverageSegment) i.next(); 74 if (seg.getNumVisits() == 0) RC.add( seg ); 75 } 76 return RC; 77 } 78 79 public Set getUncovered( String coverage ) { 80 return findUncovered( getAll( coverage )); 81 } 82 83 /*** 84 * getAll - Returns the set of all CoverageSegments 85 * for a particular coverage. 86 * 87 * It is possible that the coverage segments returned 88 * can change from call to call. (Ball94 overrides 89 * this method, because it is difficult to seperate 90 * the values.) 91 */ 92 public Set getAll( String coverage ) 93 { 94 Set RC = new HashSet( (Set) segments.get(coverage) ); 95 return RC; 96 } 97 98 public Set getCapabilities() { 99 return segments.keySet(); 100 } 101 102 public Map getSummary() { 103 Map RC = new HashMap(); 104 Iterator i = segments.keySet().iterator(); 105 106 while (i.hasNext()) { 107 String coverage = (String) i.next(); 108 Set all = getAll( coverage ); 109 Set covered = findCovered( all ); 110 float value = (float) ((1.0 * covered.size()) / 111 (1.0 * all.size())); 112 RC.put( coverage, new Float( value ) ); 113 } 114 115 return RC; 116 } 117 }

This page was automatically generated by Maven